import { Injectable } from '@angular/core';
import {Hero} from './hero';
import {HEROES} from './mock-heroes';
import {Observable, of } from 'rxjs';
import { MessageService} from './message.service';

@Injectable({
  providedIn: 'root',
})
export class HeroService {
  
  constructor(private messageService: MessageService) { }
  //修改这个构造函数，添加一个私有的 messageService 属性参数。 
  //Angular 将会在创建 HeroService 时把 MessageService 的单例注入到这个属性中
  //这是一个典型的“服务中的服务”场景： 你把 MessageService 注入到了 HeroService 中，
  //而 HeroService 又被注入到了 HeroesComponent 中。

  getHeroes(): Observable<Hero[]> {
    // TODO: send the message _after_ fetching the heroes
    this.messageService.add('HeroService: fetched heroes');
    // of(HEROES) 会返回一个 Observable<Hero[]>，它会发出单个值，这个值就是这些模拟英雄的数组。
    return of(HEROES);
  }

  
}
